package com.cnswhy.cloud.common.core.utils;

import com.aliyun.oss.OSSClient;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

@Slf4j
public class AliUploadFileUtils {
    public static String updateLoadFileToOss(MultipartFile file, String fileName) {
        // Endpoint以杭州为例，其它Region请按实际情况填写。http://oss-cn-hangzhou.aliyuncs.com
        String endpoint = "http://oss-cn-shenzhen.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录 http://ram.console.aliyun.com 创建RAM账号。

        String accessKeyId = "LTAIlBFDDNv8oSjE";
        String accessKeySecret = "BwRCJaY2QwAFDkSG5twZhJkp3FQNjr";
        String bucketName = "leyoutuan";
        String Url = "http://lyt.hechuang8.com/" + fileName;

        InputStream fis = null;
        try {
            fis = file.getInputStream();
            // 创建OSSClient实例。
            OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
            ossClient.putObject(bucketName, fileName, fis);
            // 关闭OSSClient。
            ossClient.shutdown();
        } catch (Exception ex) {
            log.error("加载异常:{}", ex.toString());
            return null;
        } finally {

            if (fis != null) {
                try {
                    fis.close();
                } catch (IOException e) {
                    log.error("加载异常:{}", e);
                }
            }
        }
        return Url;
    }
    public static String updateExcelFileToOss(File file, String fileName) {
        // Endpoint以杭州为例，其它Region请按实际情况填写。http://oss-cn-hangzhou.aliyuncs.com
        String endpoint = "http://oss-cn-shenzhen.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录 http://ram.console.aliyun.com 创建RAM账号。

        String accessKeyId = "LTAIlBFDDNv8oSjE";
        String accessKeySecret = "BwRCJaY2QwAFDkSG5twZhJkp3FQNjr";
        String bucketName = "leyoutuan";
        String Url = "http://lyt.hechuang8.com/" + fileName;

        InputStream fis = null;
        try {
            fis = new FileInputStream(file);
            //fis = file.getInputStream();
            // 创建OSSClient实例。
            OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
            ossClient.putObject(bucketName, fileName, fis);
            // 关闭OSSClient。
            ossClient.shutdown();
        } catch (Exception ex) {
            log.error("加载异常:{}", ex.toString());
            return null;
        } finally {

            if (fis != null) {
                try {
                    fis.close();
                } catch (IOException e) {
                    log.error("加载异常:{}", e);
                }
            }
        }
        return Url;
    }

    public static void deleteFileFromOss(String fileName) {
        // Endpoint以杭州为例，其它Region请按实际情况填写。http://oss-cn-hangzhou.aliyuncs.com
        String endpoint = "http://oss-cn-shenzhen.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录 https://ram.console.aliyun.com 创建RAM账号。
        String accessKeyId = "LTAIlBFDDNv8oSjE";
        String accessKeySecret = "BwRCJaY2QwAFDkSG5twZhJkp3FQNjr";
        String bucketName = "leyoutuan";
        try {
            // 创建OSSClient实例。
            OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
            ossClient.deleteObject(bucketName, fileName);
            // 关闭OSSClient。
            ossClient.shutdown();
        } catch (Exception ex) {
            log.error("加载异常:{}", ex.toString());
        }
    }

    /**
     * 获取文件后缀名（不带点）.
     *
     * @return 如："jpg" or "".
     */
    private static String getFileExt(String fileName) {
        if (StringUtils.isBlank(fileName) || !fileName.contains(".")) {
            return "";
        } else {
            return fileName.substring(fileName.lastIndexOf(".") + 1); // 不带最后的点
        }
    }
}
